//package com.wjk.kylin.mall.common.redis.redisson;
//
//import org.redisson.Redisson;
//import org.redisson.api.RedissonClient;
//import org.redisson.config.Config;
//import org.redisson.config.SingleServerConfig;
//import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
///**
// * @desc Redisson 配置
// */
//@Configuration
//public class RedissonConfig {
//
//    @Bean
//    public RedissonClient redissonClient(RedisProperties redisProperties) {
//        Config config = new Config();
//        SingleServerConfig singleServerConfig = config.useSingleServer();
//        singleServerConfig
//                //节点地址
//                .setAddress("redis://" + redisProperties.getHost() + ":" + redisProperties.getPort())
//                .setPassword(redisProperties.getPassword())
//                .setDatabase(redisProperties.getDatabase())//数据库编号
////                .setTimeout((int) redisProperties.getTimeout().toMillis())//命令等待超时，单位：毫秒
////                .setPingConnectionInterval(30000)
////                .setIdleConnectionTimeout(10000)//连接空闲超时，单位：毫秒
////                .setConnectTimeout(10000)//连接超时，单位：毫秒
//        //#  # 命令失败重试次数,如果尝试达到 retryAttempts（命令失败重试次数） 仍然不能将命令发送至某个指定的节点时，将抛出错误。
//        //#  # 如果尝试在此限制之内发送成功，则开始启用 timeout（命令等待超时） 计时。
////                .setRetryAttempts(3)
////                .setRetryInterval(1500)//命令重试发送时间间隔，单位：毫秒
////                .setSubscriptionsPerConnection(5)//单个连接最大订阅数量
////                .setSubscriptionConnectionMinimumIdleSize(1)//发布和订阅连接的最小空闲连接数
////                .setSubscriptionConnectionPoolSize(50)//发布和订阅连接池大小
////                .setConnectionMinimumIdleSize(24)//最小空闲连接数
////                .setConnectionPoolSize(64)//连接池大小
////                .setDnsMonitoringInterval(5000)//DNS监测时间间隔，单位：毫秒
//        ;
//        /*
//
//        this.pingConnectionInterval = 30000;
//
//        private int idleConnectionTimeout = 10000;
//        private int connectTimeout = 10000;
//        private int timeout = 3000;
//        private int retryAttempts = 3;
//        private int retryInterval = 1500;
//        private int subscriptionsPerConnection = 5;
//
//        private int subscriptionConnectionMinimumIdleSize = 1;
//        private int subscriptionConnectionPoolSize = 50;
//        private int connectionMinimumIdleSize = 24;
//        private int connectionPoolSize = 64;
//        private int database = 0;
//        private long dnsMonitoringInterval = 5000L;
//        */
//        ;
//        //this.lockWatchdogTimeout = 30000L;
////        config.setLockWatchdogTimeout(30000);
//        /* if (oldConf.getCodec() == null) {
//            oldConf.setCodec(new MarshallingCodec());
//            }
//        */
////        config.setCodec(new JsonJacksonCodec());
//        //this.transportMode = TransportMode.NIO;
////        config.setTransportMode(TransportMode.NIO);
//
//        //
////        try {
////            config = Config.fromYAML(ResourceUtils.getFile("classpath:redisson.yml"));
////        } catch (Exception e) {
////            throw new RuntimeException("配置 RedissonClient 失败");
////        }
//
//        return Redisson.create(config);
//    }
//}
